Linux内存状态监测工具smem命令 您所在的位置:网站首页 swap pss Linux内存状态监测工具smem命令

Linux内存状态监测工具smem命令

2024-07-15 06:30| 来源: 网络整理| 查看: 265

文章目录 如何在#linux OS下找到特定进程的交换空间使用情况?找出进程ID以及swap使用top命令 Linux内存状态监测工具smem命令什么是smem安装smem如何使用

如何在#linux OS下找到特定进程的交换空间使用情况?

原文链接: https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/

top和free命令显示服务器中的剩余物理和交换内存的总量。

如何确定哪个进程使用Linux操作系统下的交换空间?我如何找出诸如memcached之类的特定进程的交换空间使用情况?

您可以使用以下任何一种技术,但请记住,由于shared pages,没有可靠的方法来获取此信息[1]

/proc/meminfo - 显示关系统内存使用的统计信息。free使用它来报告系统上的free内存和使用的内存(物理和交换)的量以及内核使用的共享内存和缓冲区。

/proc/$ {pid}/smaps,/proc/$ {pid}/status和/proc/$ {pid}/stat/stat:使用这些文件查找有关,使用其PID使用的查看内存,页面和交换的信息。

smem - 此命令(Python脚本)报告了与共享内存分配的内存使用情况。

找出进程ID以及swap使用 pidof memcached

要查看Memcached使用的交换空间(PID#48440),请输入(#2):

grep --color VmSwap /proc/48440/status

或以下awk命令(#3):

awk '/VmSwap/{print $2 " " $3}' /proc/48440/status

在这里插入图片描述

## bash for loop ## for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done ## Get swap space in Linux using bash for loop ## for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less top命令 top

按照swap page使用(SWAP = VIRT – RES) 输入o(选项),然后是p(小p)和[enter]键: 在这里插入图片描述

SWAP = VIRT – RES

(1)top命令也可以查询到,最常用的内存指标 (2)将各个进程中的RSS值相加后,一般都会超出整个系统的内存消耗,这是因为RSS中包含了各个进程之间的共享内存

From the htop faq page: 不可能获得过程中用过的交换空间的确切大小。top命令通过进行swap = wirt - res来伪造此信息,但这不是一个好指标,因为其他内容(例如视频内存)也对virt进行了计数(例如:top说我的x进程使用了81m的交换,但是它还报告了我的整体系统仅使用2m的交换。因此,我不会在HTOP中添加类似的交换列,因为我不知道获取此信息的可靠方法(实际上,我认为这是不可能的要获得一个确切的数字,因为shared pages)。

Linux内存状态监测工具smem命令

下载地址:https://www.selenic.com/smem/

什么是smem

smem 是Linux系统上的一款可以生成多种内存耗用报告的命令行工具。与现有工具不一样的是 smem 可以报告 PSS【Proportional Set Size(按比例占用大小)】,这是一种更有意义的指标。可以衡量虚拟内存系统的库和应用程序所占用的内存数量。由于大部分的物理内存通常在多个应用程序之间共享,名为驻留集大小(RSS)的这个标准的内存耗用衡量指标会大大高估内存耗用情况。PSS这个参数而是衡量了每个应用程序在每个共享内存区中的「公平分配」,给出了一个切合实际的衡量指标。

smem命令报告物理内存使用情况,考虑了共享内存页面。

PSS-(proportion set size)比例集大小 所有使用某共享库的程序均分该共享库占用的内存时,显然所有进程的PSS之和就是系统的内存的使用量,会更准确一些,他将共享内存的大小进行平均后,在分摊到各个进程上去.

PSS情况(实际使用的物理内存(PSS)

USS-(unique set size): 进程独自占用内存 只计算进程独自占用的内存大小,不包含任何共享的部分。

USS和PSS仅包括物理内存使用。它们不包括swapped out to disk。 内存可以根据进程、用户、mapping、system-wide以文本或图形化输出。

安装smem

ubuntu

sudo apt-get install smem

centos

yum install epel-release yum install smem python-matplotlib python-tk

或:

wget https://www.selenic.com/smem/download/smem-1.4.tar.gz tar xvf smem-1.4.tar.gz cp /tmp/smem-1.2/smem /usr/local/bin/ chmod +x /usr/local/bin/smem 如何使用 Using smem Show basic process information smem Show library-oriented view smem -m Show user-oriented view smem -u Show system view smem -R 4G -K /path/to/vmlinux -w Show totals and percentages smem -t -p Show different columns smem -c "name user pss" Sort by reverse RSS smem -s rss -r Show processes filtered by mapping smem -M libxml Show mappings filtered by process smem -m -P [e]volution Read data from capture tarball smem --source capture.tar.gz Show a bar chart labeled by pid smem --bar pid -c "pss uss" Show a pie chart of RSS labeled by name smem --pie name -s rss

在输出时显示单位,方便查看实际内存占用大小 参数说明 -k 显示易读内存单位 -s #进行排序

smem -k -s

如果我们想要查看特定应用程序使用内存情况,例如 Firefox,那么我们可以配合 grep 命令使用,同时使用 -p 选项以百分比形式查看内存使用情况。

smem -m -p | grep firefox

指定查看谋个用户进程使用内存大小

smem -P mysql #(大写P) smem -k -P mysql

smem 命令还可以显示每个用户的内存使用情况,需要使用 -u 选项:

[root@dev workspace]# smem -u -p User Count Swap USS PSS RSS daemon 1 N/A 0.00% 0.00% 0.01% _rpc 1 N/A 0.00% 0.01% 0.02% ntp 1 N/A 0.01% 0.01% 0.02% systemd-network 1 N/A 0.01% 0.01% 0.03% messagebus 1 N/A 0.01% 0.01% 0.03% syslog 1 N/A 0.02% 0.02% 0.03% systemd-resolve 1 N/A 0.03% 0.03% 0.05% root 41 N/A 2.58% 3.51% 5.08% minima 4 N/A 26.81% 26.99% 27.57% [root@dev workspace]#

使用 -w 选项查看系统内存使用情况

[root@dev workspace]# smem -w -p Area Used Cache Noncache firmware/hardware 0.00% 0.00% 0.00% kernel image 0.00% 0.00% 0.00% kernel dynamic memory 29.97% 28.47% 1.50% userspace memory 30.56% 1.69% 28.87% free memory 39.47% 39.47% 0.00% [root@dev workspace]#

命令包括内核代码的大小以及在系统范围内(-w)输出中的静态分配数据:

smem -K /path/to/kernel/image/on/disk [option]

物理内存总大小。这个命令让semem检测 固件和硬件使用的内存

smem -R REALMEMSIZE [option]

用户维度查看

smem -u

结果:

Area Used Cache Noncache firmware/hardware 0 0 0 kernel image 0 0 0 kernel dynamic memory 5302144 5137920 164224 userspace memory 2692196 240828 2451368 free memory 126228 126228 0

、 查看所有进程和百分比占用情况:

smem -t -p

结果:

PID User Command Swap USS PSS RSS 53369 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 53387 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 36227 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 36232 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 36233 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 46733 xxxxxxxy /usr/bin/php-cgi 0.05% 0.00% 0.00% 0.00% 46739 xxxxxxxy /usr/bin/php-cgi 0.05% 0.00% 0.00% 0.00% 3623 root ssh-agent 0.01% 0.00% 0.00% 0.00% 53378 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 53396 xxxxxxx /usr/bin/php-cgi 0.04% 0.00% 0.00% 0.00% 7855 root rpc.rquotad 0.00% 0.00% 0.00% 0.00% 7480 root ssh-agent 0.01% 0.00% 0.00% 0.00% 34832 root ssh-agent 0.01% 0.00% 0.00% 0.00% 7334 root /sbin/mingetty /dev/tty1 0.00% 0.00% 0.00% 0.00% 7336 root /sbin/mingetty /dev/tty2 0.00% 0.00% 0.00% 0.00% 7338 root /sbin/mingetty /dev/tty3 0.00% 0.00% 0.00% 0.00% ..... .. ... 65304 vivek /usr/bin/php-cgi 0.00% 0.16% 0.27% 0.61% 33931 vivek /usr/bin/php-cgi 0.00% 0.14% 0.28% 0.44% 47933 squid (squid) -f /etc/squid/squid 0.11% 2.69% 2.69% 2.71% 28410 mysql /usr/libexec/mysqld --based 0.01% 3.67% 3.67% 3.68% 48440 memcached memcached -d -p 11211 -u me 0.01% 4.41% 4.41% 4.41% ------------------------------------------------------------------------------- 191 24 5.36% 16.08% 19.43% 27.24%


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有